1. Field of the Invention
The present invention relates generally to providing real-time data over a stateless network connection. More specifically, the present invention allows users of conventional web browsers to view data streams over the Internet without missing interim data points.
2. Description of the Related Art
A number of software applications exist that provide access to real-time process data. One such software package is the PI Server from OSIsoft of San Leandro, Calif. These systems acquire, store, and processes large amounts of enterprise-wide data, transforming them into valuable information. Data is typically acquired from a plant or process, usually from automated control systems or other sources. Data are routed through the system, where processing tools transform them into useful information. Programming libraries make that information available to client applications on demand, which present the information in various formats including interactive displays and reports. Significantly, these data archival systems can typically store large amounts of raw measurement data at their original resolution. Using client application programs designed to access data from the back-end system, personnel throughout the enterprise gain access to the real-time information. While a primary application for systems such as these is in process industries, they have general application to any situation where large volumes of important data need to be managed with precision, such as network monitoring.
In these applications, “real time” data is typically data that is measured on the order of seconds, and sometimes sub-second resolution. This data has traditionally been accessed using dedicated client applications operating over a local network. Porting these applications to a web client interface, however, has been problematic because of the web's stateless architecture. Since process monitoring applications typically have tens of thousands of measurements being recorded all at once, there is a need for a way to provide the same data through the web as would normally be provided through the regular client software, and to be able to support multiple simultaneous users seeing the data substantially in real time, and without missing any of the data points.
In the architecture of the web, and more specifically, the HTTP protocol, browsers communicate with web servers in a stateless way, and a web server does not generally know when a subsequent request is coming from the same user that has already been validated by the web server and is connected with the context of his previous queries.
For applications such as the process monitoring application, where real-time data performance can be critical, and for applications which must accumulate data as it arrives, missing any data points is unacceptable. Consider a web server that serves web pages including performance data to a browser. Suppose that the web server provides the most current value of a certain sensor each time a request arrives from the browser for the web page, and that the sensor is monitoring the condition of a valve—either open or closed. Suppose again that the browser is able to receive a new version of the web page every 15 seconds. The following situation is possible: at time t0, when the browser first receives the page, the valve is open. Four seconds later, at time t4, the valve closes for two seconds, opening again at time t6. At time t15, the browser receives the updated page, showing that the valve is open. As far as the end user running the browser is concerned, the valve never closed. In truth, the valve did close, which could be of the utmost importance to the person viewing the data. Clearly, this is an unacceptable outcome. Similarly, where data must be accumulated over time, missing an event results in an incorrect total.
The problem is not solved simply by increasing the rate at which the browser requests a refresh from the web server. First, data values may change for certain data streams more often than the fastest refresh settings permitted by the browser. Second, latency in the browser/server connection means there is no guarantee that pages can be retrieved at the specified refresh rate. Accordingly, a faster refresh rate does not provide a useful solution.
In addition, providing access to the data over the web requires that extra security be undertaken to authenticate users both at the point the user accesses the web server, and also with respect to the user's access to the back-end data itself.
In view of the foregoing, a need therefore exists for a system and method of providing continuous real-time process data over the world wide web in a complete, secure, and efficient manner.